| Smalltalk (Programmiersprache) | Dieser Text beschreibt Smalltalk (Programmiersprache). Der untere Text beinhaltet die Smalltalk (Programmiersprache) Beschreibung. Soweit es sich um ein definierbares Objekt handelt, sollte hier eine Smalltalk (Programmiersprache) Definition vorhanden sein. Sollte eine Definition von Smalltalk (Programmiersprache) fehlen, kann diese von Ihnen verfaßt werden. Wir sind bestrebt die Beschreibung von Smalltalk (Programmiersprache) möglichst ausführlich zu halten.
Jeder Text bei Know-Library, sowie ein Teil davon (Definition, Beschreibung etc.), außer Bücher Beschreibungen kann bearbeitet werden. Falls die Beschreibung auf dieser Seite nicht korrekt ist klicken Sie auf 'Beschreibung editieren' um den Text zu korrigieren bzw. neuen einzufügen. Weitere Informationen und Bücher zum Thema Smalltalk (Programmiersprache) Beschreibung , so wie Link zum Forum finden Sie weiter unten. Eine Übersicht der Texte, die das Thema Smalltalk (Programmiersprache) beschreiben finden Sie auf der Seite alle Artikel über Smalltalk (Programmiersprache). Fragen zu dem Thema Smalltalk (Programmiersprache) können im Forum gestellt werden. Klicken Sie hier um zu dem Forum zu wechseln.
Smalltalk (Programmiersprache) ArtikelSmalltalk ist eine dynamisch typisierte objektorientierte Programmiersprache und zugleich eine vollständige Entwicklungsumgebung, die in den 70er Jahren am Xerox PARC Forschungszentrum durch Alan Kay, Dan Ingalls , Adele Goldberg und andere entwickelt wurde. Sie wurde allgemein unter dem Namen Smalltalk-80 freigegeben und hat die Entwicklung vieler späterer Programmiersprachen beeinflusst (z.B. Java). Smalltalk basiert stark auf den ersten objektorientierten Konzepten, die bei der Entwicklung von Simula gewonnen wurden; das erste Smalltalk-System wurde in Simula geschrieben.
Die Smalltalk-Entwicklungsumgebung enthielt viele Ideen, die später mit der Macintosh- und dann Windows-Benutzeroberfläche verbreitet wurden. Benutzt wurde ein Grafikbildschirm mit verschiebbaren Fenstern, Aufklappmenüs und Schriften von verschiedener Größe. Eine Maus mit drei Tasten - rot, blau und gelb - diente erstmals als zusätzliches Eingabegerät. Das Model-View-Controller-Konzept (MVC) spielte in der Smalltalk-80-Entwicklungsumgebung eine wesentliche Rolle.
Buch-Tipp: Aga-pe. CD. . Die Liebe ohne Objekt Ganzheitlicher Hörgenuss Diese CD ist das Beste, was ich seit langer Zeit gehört habe. Sphärische und irdische Klänge in Harmonie. In dem Gegensatz zu anderer spiritueller Musik fühlte ich mich die ganze Zeit stark geerdet und doch wie zu Hause in den Lichtwelten. Verwurzelt, in der Mitte und verbunden mit allem was ist. Man spürt, das der Komponist... Wichtiges Merkmalen von Smalltalk |
- Alles in Smalltalk ist ein Objekt, auch Zeichenketten, Integer, Boolesche Werte, Klassen(-definitionen), ausführbarer Code, Stack-frames , der Speicher, Codeblöcke etc.
- Objekte werden dadurch aktiviert, dass man ihnen Nachrichten (Messages) schickt. Dies führt dazu, dass die entsprechende Methode (Funktion) des Objekts ausgeführt wird.
- Der gesamte Quelltext ist i.d.R. offen und kann somit verändert werden. Ca. sehr wenige Methoden greifen auf echte 'Primitives' der VM (virtuellen Maschine) zurück.
- Dynamische Typisierung - erst zur Laufzeit eines Programms wird ermittelt, welche Funktion - in Smalltalk 'Methode' genannt - tatsächlich aufgerufen wird. In manchen anderen objektorientierten Programmiersprachen (z.B. C++) muss man dieses Verhalten explizit vorher angeben.
- Vererbung: Jede Klasse (außer der Wurzelklasse
Object) ist von exakt einer Oberklasse abgeleitet, deren Verhalten sie erbt und beliebig erweitern kann (keine Mehrfachvererbung).
- Automatische Speicherbereinigung (engl. garbage collection = Mülleinsammeln), die nicht durch den Programmierer beeinflusst werden muss. Ein Objekt 'lebt' solange, wie es von anderen Objekten referenziert wird.
- Smalltalkprogramme werden in Bytecode übersetzt, der durch eine virtuelle Maschine ausgeführt wird. Dadurch laufen Smalltalk-Programme ohne jegliche Änderung auf jedem System, für das eine virtuelle Maschine existiert. Ursprünglich wurde der Bytecode interpretiert; kommerzielle Umgebungen arbeiten inzwischen fast ausschließlich mit dynamischer Übersetzung.
- Üblicherweise hat man eine Programmierumgebung (selbst in Smalltalk geschrieben), in der man Quelltext am "lebenden" Objekt ändern und dann auch direkt in der geänderten Form (weiter)ausführen kann. "Smalltalkprogramme" kann man ändern, während sie laufen.
- Die Quelltexteingabe erfolgt üblicherweise in dem sog. Class-Browser.
- Eine überraschendes Merkmal in dem Vergleich zu traditionellen Sprachen ist, dass die Kontrollstrukturen wie if-then-else, for, while nicht in die Sprache eingebaut sind. Immerhin erscheint dies dem Programmierer so. Zu dem Beispiel wird eine IF-Anweisung so ausgeführt, indem eine ifTrue:-Botschaft an ein Boole'sches Objekt gesandt wird. Als Parameter wird ein Block (Anweisungsfolge) übergeben, die ausgeführt wird, wenn das Boole'sche Objekt den Wert True zurückgibt.
Es gibt ca. drei eingebaute ausführbare Konstrukte:
* Senden einer Botschaft an ein Objekt;
* Zuweisen eines Objekt an eine Variable;
* Ein Objekt als Rückgabewert einer Methode liefern;
Buch-Tipp: Business-Smalltalk für Frauen. Die Kunst des kleinen Gesprächs praktischer kleiner Ratgeber Dieses Buch ist ein praktischer kleiner Ratgeber, der gezielt durch die Dos and Don'ts des Small-Talks in dem Job führt. Es sind allgemeine Informationen, praktische Tipps und Beispiele enthalten, anhand derer der Leser einen guten Ein- und Überblick über die Kunst des "kleinen Gesprächs" bekommt. Hilfreich sind auch... |
| |
Expressions sind von der Form
anObject message
D.h. man sendet einem Objekt eine Message. Das Objekt antwortet mit einem Antwortobjekt.
Die message kann komplex sein kann, Expressions können kombiniert und mit Klammern geschachtelt werden.
|
| |
Eine Zuweisung ist von der Form
aVariable := anExpression .
Zuweisungen werden mit einem Punkt abgeschlossen.== Blöcke ==
Blöcke sind Sequenzen von Zuweisungsanweisungen und Expressions. Sie werden durch eckige Klammern eingeschlossen. Blöcke können parameterlos sein oder auch Parameter aufweisen.
[ nurAnweisungen ]
[ :einParameter | dieBlockAnweisungenDieDenParameterNutzen ]== Kontrollstrukturen ==
Die Kontrollstrukturen werden mit booleschen Ausdrücken und Blöcken implementiert. Ein boolescher Ausdruck liefert nach der Auswertung ein Boolesches Objekt. Diesem wird dann eine Message zugesandt, die als Parameter einen ausführbaren Block hat.
Der Programmtext sieht aber ähnlich aus, wie bei anderen Programmiersprachen auch, so dass man wie dort einfach gewisse Kontrollstrukturen als gegeben anwenden kann.
Einige Beispiele.
Buch-Tipp: Die Kunst des Smalltalk. Leicht ins Gespräch kommen, locker Kontakte knüpfen. Hilfreich und gut zu lesen Ca. durch lesen dieses Buchs wird aus einem Mauerblümchen kein Harald Schmidt, Joschka Fischer oder Anne Will. Aber es bietet doch gute Tipps und Anregungen wie man Gespräche in Gang bringt und dann auch am Laufen hält. Ich habe bei einigen Gesprächen ein wenig mit diesen Tipps gearbeitet und gemerkt das sie wirklich... |
|
aBoolean ifTrue: [ ein Block mit Anweisungen ]
oder
[ ein Block, der ein boole'sches Objekt zurückgibt ] ifTrue: [ ein Block mit Anweisungen ]===Schleifen===
[ ein Block, der ein boole'sches Objekt zurückgibt ] whileTrue: [ einBlock ]
[ ein Block, der ein boole'sches Objekt zurückgibt ] whileFalse: [ einBlock ]
einIntegerStartWert to: einIntegerEndwert do: [ :laufvariable | Anweisungsfolge]
|
| |
Die Smalltalkumgebungen kommen mit einer großen Klassenbibliothek. Ein wichtiger allgemeiner Objekttyp (Klasse) sind die Collections, d.h. Sammlungen von Objekten. Die Klasse Collection steht an der Wurzel einer ganzen Hierarchie von Klassen.
Eine wichtige Arbeit, die man mit einem Collection-Objekt durchführen kann ist für jedes Element der Collection einen Block von Anweisungen auszuführen.
aCollection do: [ :einElement | auszuführendeArbeitFürDiesesElement ]== Programmbeispiel ==
Das klassische HelloWorld-Beispiel sieht wie folgt aus:
Transcript show: 'Hello World!'Transcript ist eine in jeder Smalltalkumgebung vordefinierte globale Variable, die ein Objekt enthält, auf dem man Dinge protokollieren kann (ein Ausgabefenster).
Wir sendem diesem Objekt die Message
show: aStringEin bereits etwas komplexeres Beispiel:
'Hello World' do: [ :eachChar|
Transcript show: eachChar ; cr
].
gibt den Text "Hello World" vertikal aus. 'Hello World' ist ein String (Zeichenkette). Das Klasse dieses Objektes ist eine Unterklasse von Collection. Ein String ist also eine Collection von Zeichen. Indem wir dem Objekt String die Message
aString do: [ :eachChar | OperationenMitDiesemBuchstaben ]
senden gehen wir alle Buchstaben (Elemente) des Strings einzeln durch.Das Dictionary (in Perl Hash, in Java HashMap) ist eine in Smalltalk häufig benutzte Datenstruktur:
d := Dictionary new.
d at: 'grün' put: 'green'.
d at: 'blau' put: 'blue'.
d at: 'rot' put: 'red'.
Transcript show: (d at: 'blau').
Auch das Dictionary ist eine Unterklasse von Collection.
Diese Datenstruktur entspricht dem assoziativen Array in anderen Programmiersprachen.
Buch-Tipp: Erfolgsfaktor Smalltalk Gutes, unterhaltsames Buch Das Buch gibt gute undpraxisnahe Ratschläge, wie man erfolgreich Smalltalk betriebt. Auch bei schwierigen und unangenehmen Situationen gibt es einfache und praktikable Hilfestellung. Ab und zu ist es etwas oberflächlich, wie Smalltalk eben ist, darum "nur" 4 Sterne. |
| |
- "Why Smalltalk?" (http://www.whysmalltalk.com), eine Portalseite rund um Smalltalk
- Smalltalk Free Books (http://www.iam.unibe.ch/~ducasse/FreeBooks.html), eine Sammlung von Büchern über Smalltalk zu dem Download
- Smalltalk User Groups:
Buch-Tipp: Erfolgsfaktor Smalltalk. Mühelos Kontakte knüpfen (GU Business Ratgeber) Gutes, unterhaltsames Buch Das Buch gibt gute undpraxisnahe Ratschläge, wie man erfolgreich Smalltalk betriebt. Auch bei schwierigen und unangenehmen Situationen gibt es einfache und praktikable Hilfestellung. Ab und zu ist es etwas oberflächlich, wie Smalltalk eben ist, darum "nur" 4 Sterne. |
|
- Squeak, eine freie Multimedia-Smalltalk Implementierung
- VisualWorks (http://www.cincom.com/smalltalk)
- IBM VisualAge for Smalltalk (http://www-4.ibm.com/software/ad/smalltalk/) - Smalltalk Umgebung von IBM
- Smalltalk/X (http://www.exept.de/sites/exept/deutsch/Smalltalk/frame_uebersicht.html) - Smalltalk der Firma eXept Software, die für sehr viele verschiedene Plattformen verfügbar ist
- Dolphin Smalltalk (http://www.object-arts.com/) - Ein komfortables auf Windows spezialisierter Smalltalk Dialekt
- Smalltalk MT bei Object Connect (http://www.objectconnect.com) oder Smalltalk MT bei Genify (http://www.genify.com) - Ein C++ nahes Smalltalk Derivat (C++ mit Smalltalk Syntax), das zu nativen EXEs kompiliert
Siehe auch: Objective-C
|
Weiteres zu dem Artikel Smalltalk (Programmiersprache) | | Andere Leser interessierten sich auch für folgende Beschreibungen: | Beispiel, Entwicklung, Tasten, Umgebung | | Schnellzugrif auf verwandte Texte: | | | NEU! Frage im Forum zum Thema: | | Wenn die Beschreibung 'Smalltalk (Programmiersprache)' Ihrer Meinung nach nicht korrekt ist oder in aktueller Version Fehler enthalten sind oder es fehlt die Smalltalk (Programmiersprache) Definition, dann klicken Sie bitte auf "Beschreibung bearbeiten" und schreiben Sie die Eigene Version des Textes. Die Änderungen in der Beschreibung werden sofort aktiv und für alle sichtbar. Ein Administrator wird Ihre Version der Beschreibung und Definition von 'Smalltalk (Programmiersprache)' nachher prüfen. Bitte achten Sie auf die Urheberrechte (Copyright). Wir sind für die besseren Beschreibung von 'Smalltalk (Programmiersprache)' und 'Smalltalk (Programmiersprache)' Definition sehr dankbar.
Alle Tipps zu den Bücher auf dieser Seite wurden automatisch generiert. D.h. die Bücher wurden aus einer Datenbank von dem Computer ausgesucht. Deshalb kann es vorkommen, dass vorgeschlagene Bücher nicht ganz der 'Smalltalk (Programmiersprache)' Beschreibung entsprechen.
|
|
|
· Diese Seite wurde bisher 1.269 mal abgerufen. · Letzte Counteraktualisierung erfolgte am 17.05.2008 um 12:04:11 · Diese Seite wurde zuletzt geändert um 20:17, 19. Sep 2004. · Letzte Portalaktualisierung erfolgte um 08:00:00 GMT, 25.02.2008
|